package com.muyu.vehicle.mapper;

import java.util.List;
import com.muyu.vehicle.domain.VehicleInfo;
import com.muyu.vehicle.domain.vo.VehicleFenceVo;
import com.muyu.vehicle.domain.vo.VehicleIndexVo;
import org.apache.ibatis.annotations.Param;

/**
 * 车辆信息Mapper接口
 *
 * @author muyu
 * @date 2021-09-04
 */
public interface VehicleInfoMapper
{
    /**
     * 查询车辆信息
     *
     * @param id 车辆信息主键
     * @return 车辆信息
     */
    public VehicleInfo selectVehicleInfoById(String id);

    /**
     * 查询车辆信息列表
     *
     * @param vehicleInfo 车辆信息
     * @return 车辆信息集合
     */
    public List<VehicleInfo> selectVehicleInfoList(VehicleInfo vehicleInfo);

    /**
     * 新增车辆信息
     *
     * @param vehicleInfo 车辆信息
     * @return 结果
     */
    public int insertVehicleInfo(VehicleInfo vehicleInfo);

    /**
     * 修改车辆信息
     *
     * @param vehicleInfo 车辆信息
     * @return 结果
     */
    public int updateVehicleInfo(VehicleInfo vehicleInfo);

    /**
     * 删除车辆信息
     *
     * @param id 车辆信息主键
     * @return 结果
     */
    public int deleteVehicleInfoById(String id);

    /**
     * 批量删除车辆信息
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteVehicleInfoByIds(String[] ids);

    /**
     * 修改车辆状态
     * @param vin
     * @param status
     */
    void updateVehicleStatusByVin(@Param("vin") String vin, @Param("status") Integer status);

    List<VehicleFenceVo> selectVehicleFence(@Param("vin") String vin);

    /**
     * 通过VIN查询车辆ID
     * @param vin
     * @return
     */
    String selectVehicleIDByVin(String vin);

    VehicleIndexVo selectIndexVehiceData();

}
